#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Modulos 
import sys, gtk, pygame, utils, objetos, math
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------

class ObjetoGrafico(pygame.sprite.Sprite):
	def __init__(self, path, posInicialx, posInicialy, posFinalx, posFinaly):
		self.image = utils.load_image(path, True)
		self.rect = self.image.get_rect()

		self.rect.centerx = posInicialx
		self.rect.centery = posInicialy
		self.posInicialx = posInicialx
		self.posInicialy = posInicialy
		self.posFinalx = posFinalx
		self.posFinaly = posFinaly
		self.estado_x = 'INICIAL'
		self.estado_y = 'INICIAL'
		if posFinalx > posInicialx :
		        self.vx = 3
		else:
			self.vx = -3

		if posFinaly > posInicialy :
		        self.vy = 3
		else:
			self.vy = -3

	def cambiarEstado(self, screen):
		if (self.estado >= 3):
			self.estado = 1
		else:
			self.estado = self.estado + 1

	def match(self):
		x, y = pygame.mouse.get_pos()
		if abs(self.rect.centerx - x) < 90  and abs(self.rect.centery - y) < 90 :
			return True
		else:
			return False

	def mover(self):
		if self.estado_x == 'INICIAL':
			if self.vx and self.rect.centerx < self.posFinalx:
				self.rect.centerx = self.rect.centerx + self.vx
			elif self.vy and self.rect.centerx < self.posFinalx:
				self.rect.centerx = self.rect.centerx + self.vx
			else:
				self.estado_x = 'FINAL'


		if self.estado_y == 'INICIAL':
			if self.vy < 0 and self.rect.centery > self.posFinaly:
				self.rect.centery = self.rect.centery + self.vy

			elif self.vy > 0 and self.rect.centery > self.posFinaly:
				self.rect.centery = self.rect.centery + self.vy
			else:
				self.estado_y = 'FINAL'

# ---------------------------------------------------------------------
	
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo2.png')

    #boton de la flecha para continuar
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()

    #texto superior derecho que indica el numero de clase
    clase2, clase2_rect = utils.texto_clase("Clase 2", 750*utils.RES, 15*utils.RES)

    titulo1, titulo1_rect = utils.texto_subtitulo("CUANDO HAY AGUA PERO NO SE PUEDE USAR: ", 300*utils.RES, 65*utils.RES)
    #titulo2, titulo2_rect = utils.texto_subtitulo("LA CONTAMINACIÓN",                        530*utils.RES, 110*utils.RES)
    titulo2, titulo2_rect = utils.textotlb("LA CONTAMINACIÓN", 510*utils.RES, 120*utils.RES, 35, color=(255, 0, 0))

    libro = ObjetoGrafico('images/clase2_librito.png', 100*utils.RES, 500*utils.RES,  100*utils.RES, 150*utils.RES )

    bt1 = utils.BloqueTexto(22)
    bt1.agregarParrafo('''El segundo problema, que existe en muchas partes del planeta con el agua, es en relación a su CALIDAD. A veces, el agua es POTABLE, entonces puede ser utilizada para consumo de las personas y los animales. Pero muchas veces el agua NO ES POTABLE. Esto puede ocurrir porque naturalmente el agua tenga algunos componentes que no sean aptos para el consumo, aunque en muchos casos, las aguas son CONTAMINADAS por las personas que vuelcan desechos tóxicos en los ríos y lagos.''', 75, 380, 200 )
    bt1l, bt1lrect = bt1.obtener_gui(False)

    cant_clicks = 0
    while salir == 0:
    
    	# Pump GTK messages.
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				mx, my = pygame.mouse.get_pos()
				cant_clicks = cant_clicks + 1
				if btn_adelante.rect.collidepoint(mx, my):
					salir = 8
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(mx, my):
					salir = 6
					btn_atras.sonido.play()	
					

		# Si se esta moviendo no se consideran los clicks
		if libro.estado_x == 'INICIAL' or libro.estado_y == 'INICIAL' :
			cant_clicks = 0
			libro.mover()

		# Realiza la animacion del texto	
		screen.blit(background_image, (0, 0))
		screen.blit(clase2, clase2_rect)
		screen.blit(titulo1, titulo1_rect)

		if cant_clicks == 1:
			salir = 0 # Aunque haya hecho click en el boton siguiente 
			screen.blit(titulo2, titulo2_rect)			

		elif cant_clicks == 2:
			salir = 0
			screen.blit(titulo2, titulo2_rect)			
			# Parrafos multinea
			for nl in range (0,len(bt1l)):
				screen.blit(bt1l[nl], bt1lrect[nl])


		elif cant_clicks >= 2 :
			screen.blit(titulo2, titulo2_rect)			
			# Parrafos multinea
			for nl in range (0,len(bt1l)):
				screen.blit(bt1l[nl], bt1lrect[nl])

		screen.blit(libro.image, libro.rect)	

		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)

    return salir


# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)
 
if __name__ == '__main__':
   main()
